home *** CD-ROM | disk | FTP | other *** search
- import java.io.IOException;
- import java.io.InputStream;
-
- final class ScriptPlayer extends SParser implements Runnable {
- // $FF: renamed from: Ŭ int
- int field_0;
- // $FF: renamed from: ŭ int
- int field_1;
- // $FF: renamed from: Ů int
- int field_2;
- // $FF: renamed from: ů int
- int field_3;
- // $FF: renamed from: ┼░ int
- int field_4;
- // $FF: renamed from: ┼▒ Rect
- Rect field_5;
- // $FF: renamed from: ┼▓ int
- int field_6;
- // $FF: renamed from: ┼│ int
- int field_7;
- // $FF: renamed from: ┼┤ int
- int field_8;
- // $FF: renamed from: ┼╡ int
- int field_9;
- // $FF: renamed from: ┼╢ int
- int field_10;
- // $FF: renamed from: ┼╖ byte[]
- byte[] field_11;
- // $FF: renamed from: ┼╕ boolean
- boolean field_12;
- // $FF: renamed from: ┼╣ boolean
- boolean field_13;
- // $FF: renamed from: ┼║ int
- int field_14;
- // $FF: renamed from: ┼╗ Semaphore
- Semaphore field_15;
- // $FF: renamed from: ─ì DisplayList
- DisplayList field_16;
- public int[] actionList;
- public int nActions;
- // $FF: renamed from: ┼╝ SCharacter[]
- SCharacter[] field_17;
- // $FF: renamed from: Ü Flash
- Flash field_18;
- // $FF: renamed from: ┼╜ Sound
- Sound field_19;
- // $FF: renamed from: ┼╛ int
- int field_20;
- // $FF: renamed from: ┼┐ boolean
- boolean field_21;
- // $FF: renamed from: ƀ int
- private int field_22;
- // $FF: renamed from: Ɓ int
- private int field_23;
- // $FF: renamed from: Ƃ int
- private static int field_24;
- // $FF: renamed from: ƃ int
- private int field_25;
- // $FF: renamed from: Ƅ int
- private int field_26;
- // $FF: renamed from: ƅ java.io.InputStream
- private InputStream field_27;
- // $FF: renamed from: Ɔ boolean
- private boolean field_28;
-
- ScriptPlayer() {
- this.field_11 = new byte[8];
- this.field_15 = new Semaphore(false);
- this.actionList = new int[16];
- this.field_17 = new SCharacter[64];
- this.field_19 = new Sound(0, 0, (byte[])null, 0);
- this.field_5 = new Rect(0, 0, 600, 600);
- this.ClearScript();
- }
-
- ScriptPlayer(Flash var1) {
- this();
- this.field_18 = var1;
- }
-
- public final boolean ScriptComplete() {
- return super.Ʃ != null && this.field_3 >= this.field_4;
- }
-
- public final boolean GotHeader() {
- return this.field_12;
- }
-
- public final int GetFrame() {
- return this.field_14;
- }
-
- public final boolean AtEnd() {
- return this.field_13;
- }
-
- // $FF: renamed from: Ŭ (SObject, int) void
- void method_0(SObject var1, int var2) {
- int var3 = var1.Þ;
- if (var3 != var2 && (var2 == 1 || var3 <= var2)) {
- if (var1.Ɗ.Æ > 0) {
- SParser var4 = new SParser();
- byte[] var5 = super.Ʃ;
- int var6 = var1.Ɗ.Æ;
- var4.Ʃ = var5;
- var4.ƪ = var6;
-
- for(int var11 = 1; var11 < var2; var11 <<= 1) {
- var6 = var4.Ʃ();
- if (var6 > 0) {
- var4.╞▒((int[])null, (int[])null, true);
- }
- }
-
- var6 = var4.Ʃ();
- if (var6 > 0) {
- SCharacter var7 = this.FindCharacter(var6);
- if (var7 == null || var7.Ã != 5) {
- return;
- }
-
- int[] var8 = new int[1];
- int[] var9 = new int[1];
- Sound var10 = (Sound)var7.È;
- var4.╞▒(var8, var9, false);
- if (var10.ƒ()) {
- if ((var9[0] & 2) != 0) {
- var10.stop();
- return;
- }
-
- if ((var9[0] & 1) != 0 && !this.field_21) {
- var10.Ƒ(var8[0]);
- return;
- }
-
- if (!this.field_21) {
- var10.Ɛ(var8[0]);
- }
- }
- }
- }
-
- }
- }
-
- // $FF: renamed from: ŭ () void
- void method_1() {
- for(Sound var1 = this.field_19; var1 != null; var1 = var1.À) {
- var1.stop();
- }
-
- SoundMixer.StopAllStreams();
- }
-
- // $FF: renamed from: Ů () void
- void method_2() {
- int var1 = ((SParser)this).Ʃ();
- SCharacter var2 = this.FindCharacter(var1);
- if (var2 != null && var2.Ã == 5) {
- int[] var3 = new int[1];
- int[] var4 = new int[1];
- Sound var5 = (Sound)var2.È;
- ((SParser)this).╞▒(var3, var4, false);
- if (var5.ƒ()) {
- if ((var4[0] & 2) != 0) {
- var5.stop();
- return;
- }
-
- if ((var4[0] & 1) != 0 && !this.field_21) {
- var5.Ƒ(var3[0]);
- return;
- }
-
- if (!this.field_21) {
- var5.Ɛ(var3[0]);
- }
- }
-
- }
- }
-
- public void FreeAll() {
- if (this.field_16 != null) {
- this.field_16.FreeAll();
- }
-
- super.ƪ = this.field_1;
- this.field_14 = -1;
- this.field_13 = false;
- }
-
- public void ClearScript() {
- this.FreeAll();
- this.field_12 = false;
- this.field_14 = -1;
- this.field_13 = false;
- this.field_3 = this.field_10 = 0;
- this.field_4 = -1;
- super.ƪ = 0;
- super.Ʃ = null;
- this.field_2 = 0;
- this.nActions = 0;
- }
-
- public SCharacter FindCharacter(int var1) {
- SCharacter var2;
- for(var2 = this.field_17[var1 & 63]; var2 != null && var2. != var1; var2 = var2.À) {
- }
-
- return var2;
- }
-
- // $FF: renamed from: ů (int) SCharacter
- private SCharacter method_3(int var1) {
- SCharacter var2 = new SCharacter();
- if (var2 != null) {
- var2.À = this.field_17[var1 & 63];
- this.field_17[var1 & 63] = var2;
- var2.Á = this;
- var2. = var1;
- }
-
- return var2;
- }
-
- // $FF: renamed from: ┼░ (int) void
- private void method_4(int var1) {
- Object var2 = null;
- SCharacter var10000 = this.field_17[var1 & 63];
- }
-
- // $FF: renamed from: ┼▒ () void
- private void method_5() {
- int var1 = ((SParser)this).Ʃ();
- if (this.FindCharacter(var1) == null) {
- SCharacter var2 = this.method_3(var1);
- var2.Ã = 0;
- var2.Å = ((SParser)this).Ʈ();
- var2.Ä = super.ƪ;
- }
- }
-
- private void PlaceObject() {
- int var1 = ((SParser)this).Ʃ();
- int var2 = ((SParser)this).Ʃ();
- SCharacter var3 = this.FindCharacter(var1);
- Matrix var4 = ((SParser)this).Ư();
- if (super.ƪ < super.ƫ) {
- ColorTransform var5 = new ColorTransform();
- ((SParser)this).Ƭ(var5);
- this.field_16.PlaceObject(var3, var1 << 16 | var2, var4, var5);
- } else {
- this.field_16.PlaceObject(var3, var1 << 16 | var2, var4, (ColorTransform)null);
- }
- }
-
- private void RemoveObject() {
- int var1 = ((SParser)this).Ʃ();
- int var2 = ((SParser)this).Ʃ();
- this.field_16.RemoveObject(var1 << 16 | var2);
- }
-
- // $FF: renamed from: ┼▓ () void
- private void method_6() {
- int var1 = ((SParser)this).Ʃ();
- if (this.FindCharacter(var1) == null) {
- SCharacter var2 = this.method_3(var1);
- var2.Ã = 2;
- var2.Ä = super.ƪ;
- var2.Å = new Rect();
- }
- }
-
- // $FF: renamed from: ┼│ (boolean) void
- void method_7(boolean var1) {
- int var2 = ((SParser)this).Ʃ();
- SCharacter var3 = this.FindCharacter(var2);
- if (var3 != null && var3.Ã == 2) {
- if (var1) {
- var3.Æ = super.ƪ;
- } else {
- var3.Ç = super.ƪ;
- }
- }
- }
-
- // $FF: renamed from: ┼┤ (int) void
- void method_8(int var1) {
- int var2 = ((SParser)this).Ʃ();
- if (this.FindCharacter(var2) == null) {
- SCharacter var4 = this.method_3(var2);
- if (var4 != null) {
- var4.Ã = 5;
- int var5 = super.Ʃ[super.ƪ++] & 255;
- int var6 = ((SParser)this).ƫ();
- Sound var3;
- var4.È = var3 = new Sound(var5, var6, super.Ʃ, super.ƪ);
- if (var3 == null) {
- this.method_4(var2);
- } else {
- var4.Ä = super.ƪ;
- if (var3.Ə() > 16) {
- this.method_4(var2);
- } else {
- var3.╞ÿ = var2;
- var3.À = this.field_19.À;
- this.field_19.À = var3;
- }
- }
- }
- }
- }
-
- // $FF: renamed from: ┼╡ () void
- private void method_9() {
- int var1 = ((SParser)this).Ʃ();
- if (this.FindCharacter(var1) == null) {
- SCharacter var2 = this.method_3(var1);
- var2.Ã = 3;
- var2.Å = new Rect();
- var2.Ä = super.ƪ;
- }
- }
-
- // $FF: renamed from: ┼╢ () void
- private void method_10() {
- int var1 = ((SParser)this).Ʃ();
- if (this.FindCharacter(var1) == null) {
- SCharacter var2 = this.method_3(var1);
- var2.Ã = 4;
- var2.Å = ((SParser)this).Ʈ();
- var2.Ä = super.ƪ;
- }
- }
-
- // $FF: renamed from: ┼╖ () void
- private void method_11() {
- if (this.field_2 == 0) {
- if (!this.field_12) {
- if (this.field_3 >= 21) {
- this.field_5 = ((SParser)this).Ʈ();
- this.field_6 = ((SParser)this).Ʃ() << 8;
- this.field_7 = 65536000 / this.field_6;
- this.field_8 = ((SParser)this).Ʃ();
- this.field_26 = this.field_1 = super.ƪ;
- this.field_14 = -1;
- this.field_12 = true;
- }
- }
- }
- }
-
- public void PushData(byte[] var1, int var2) {
- if (this.field_2 == 0) {
- int var3 = 0;
- if (this.field_4 < 0) {
- int var4 = Math.min(8 - this.field_10, var2);
- System.arraycopy(var1, var3, this.field_11, this.field_10, var4);
- var3 += var4;
- var2 -= var4;
- this.field_10 += var4;
- if (this.field_10 != 8) {
- return;
- }
-
- if (this.field_11[0] != 70 || this.field_11[1] != 87 || this.field_11[2] != 83) {
- this.field_2 = -1;
- return;
- }
-
- this.field_9 = this.field_11[3];
- this.field_4 = this.field_11[4] & 255 | (this.field_11[5] & 255) << 8 | (this.field_11[6] & 255) << 16 | (this.field_11[7] & 255) << 24;
- this.field_4 -= 8;
- super.Ʃ = new byte[this.field_4];
- if (super.Ʃ == null) {
- this.field_2 = -2;
- return;
- }
- }
-
- if (this.field_3 + var2 > this.field_4) {
- var2 = Math.min(var2, this.field_4 - this.field_3);
- }
-
- System.arraycopy(var1, var3, super.Ʃ, this.field_3, var2);
- this.field_3 += var2;
- if (!this.field_12) {
- this.method_11();
- }
-
- this.field_15.Î();
- }
- }
-
- // $FF: renamed from: ┼╕ () int
- private int method_12() {
- if (field_24 == 0) {
- if (("SLAV" + System.getProperty("java.version")).indexOf("SLAV1.0") == -1) {
- field_24 = 1;
- } else {
- field_24 = 3;
-
- try {
- Class.forName("sun.awt.image.ImageDecoder");
- field_24 = 2;
- } catch (ClassNotFoundException var1) {
- }
- }
- }
-
- return field_24;
- }
-
- // $FF: renamed from: ┼╣ (int, int) void
- private void method_13(int var1, int var2) {
- int var3 = ((SParser)this).Ʃ();
- int var4 = 0;
- int var5 = 0;
- int var6 = 0;
- int var7 = 0;
- if (this.FindCharacter(var3) == null) {
- SCharacter var8 = this.method_3(var3);
- if (var8 != null) {
- var8.Ã = 1;
- var8.Ä = super.ƪ - 8;
- if (var2 == 6) {
- var6 = super.ƪ + 2;
- var7 = var1 - 4;
- var4 = this.field_22;
- var5 = this.field_23;
- } else {
- var4 = super.ƪ;
-
- for(int var9 = var4; var9 < super.ƫ; ++var9) {
- if ((super.Ʃ[var9] & 255) == 255 && (super.Ʃ[var9 + 1] & 255) == 217) {
- var5 = var9 - var4;
- break;
- }
- }
-
- for(int var10 = var4 + var5; var10 < super.ƫ; ++var10) {
- if ((super.Ʃ[var10] & 255) == 255 && (super.Ʃ[var10 + 1] & 255) == 216) {
- var6 = var10 + 2;
- var7 = var1 - 6 - var5;
- break;
- }
- }
- }
-
- byte[] var14 = new byte[var5 + var7];
- if (var14 != null) {
- System.arraycopy(super.Ʃ, var4, var14, 0, var5);
- System.arraycopy(super.Ʃ, var6, var14, var5, var7);
- switch (this.method_12()) {
- case 1:
- var8.È = new Bitmap(this.field_18.getToolkit().createImage(var14), this.field_16);
- return;
- case 2:
- try {
- Object var15 = Class.forName("ImageSource").newInstance();
- if (var15 != null) {
- ((ImageSource)var15).─Ö(var14);
- ((ImageSource)var15).─Ü();
- Bitmap var11 = new Bitmap((ImageSource)var15, this.field_16);
- ((ImageSource)var15).─¢();
- var8.È = var11;
- return;
- }
- break;
- } catch (Exception var12) {
- var8.È = null;
- return;
- }
- case 3:
- default:
- var8.È = null;
- return;
- }
- } else {
- var8.È = null;
- }
-
- }
- }
- }
-
- // $FF: renamed from: ┼║ () int
- private int method_14() {
- if (super.Ʃ == null) {
- return -3;
- } else if (this.field_2 != 0) {
- return this.field_2;
- } else if (this.field_13) {
- return 2;
- } else if (this.field_3 - super.ƪ < 2) {
- return 1;
- } else {
- int var1 = super.ƪ;
- int var2 = ((SParser)this).Ʃ();
- int var3 = var2 & 63;
- if (var3 == 63) {
- if (this.field_3 - super.ƪ < 4) {
- super.ƪ = var1;
- return 1;
- }
-
- var3 = ((SParser)this).ƫ();
- }
-
- this.field_0 = super.ƪ + var3;
- super.ƫ = this.field_0;
- if (this.field_0 > this.field_3) {
- super.ƪ = var1;
- return 1;
- } else {
- switch (var2 >> 6) {
- case 0:
- this.field_13 = true;
- break;
- case 1:
- ++this.field_14;
- break;
- case 2:
- case 22:
- this.method_5();
- break;
- case 3:
- this.method_4(((SParser)this).Ʃ());
- break;
- case 4:
- this.PlaceObject();
- break;
- case 5:
- this.RemoveObject();
- break;
- case 6:
- case 21:
- this.method_13(var3, var2 >> 6);
- break;
- case 7:
- this.method_6();
- break;
- case 8:
- this.field_23 = var3 - 2;
- this.field_22 = super.ƪ;
- break;
- case 9:
- this.field_16.SetBackgroundColor(((SParser)this).ƭ(), 3);
- break;
- case 10:
- this.method_9();
- break;
- case 11:
- this.method_10();
- break;
- case 12:
- if (this.nActions < 16) {
- this.actionList[this.nActions] = super.ƪ;
- ++this.nActions;
- }
- case 13:
- case 16:
- case 18:
- case 19:
- case 20:
- case 24:
- case 25:
- default:
- break;
- case 14:
- this.method_8(var3);
- break;
- case 15:
- this.method_2();
- break;
- case 17:
- this.method_7(true);
- break;
- case 23:
- this.method_7(false);
- }
-
- super.ƪ = this.field_0;
- return this.field_2;
- }
- }
- }
-
- public int DrawFrame(int var1) {
- if (this.field_2 != 0) {
- return this.field_2;
- } else if (!this.field_12) {
- return 1;
- } else {
- if (this.field_14 > var1) {
- this.FreeAll();
- }
-
- int var2;
- for(var2 = 0; this.field_14 < var1 && var2 == 0; var2 = this.method_14()) {
- }
-
- return var2;
- }
- }
-
- // $FF: renamed from: ┼╗ (int) boolean
- boolean method_15(int var1) {
- if (this.field_25 >= var1) {
- return true;
- } else if (this.field_28) {
- return true;
- } else if (super.Ʃ != null && this.field_2 == -3) {
- SParser var2 = new SParser();
- byte[] var3 = super.Ʃ;
- int var4 = this.field_26;
- var2.Ʃ = var3;
- var2.ƪ = var4;
-
- while(this.field_3 - var2.ƪ >= 2) {
- int var5 = var2.Ʃ();
- var4 = var5 & 63;
- if (var4 == 63) {
- if (this.field_3 - super.ƪ < 4) {
- return false;
- }
-
- var4 = var2.ƫ();
- }
-
- var2.ƪ += var4;
- if (var2.ƪ > this.field_3) {
- return false;
- }
-
- this.field_26 = var2.ƪ;
- if (var5 >> 6 == 1) {
- ++this.field_25;
- if (this.field_25 >= var1) {
- return true;
- }
- }
- }
-
- return false;
- } else {
- return false;
- }
- }
-
- public void loadScript(InputStream var1) {
- this.ClearScript();
- this.field_27 = var1;
- Thread var2 = new Thread(this);
- var2.setPriority(6);
- var2.start();
- }
-
- public void run() {
- try {
- byte[] var1 = new byte[512];
-
- while(true) {
- int var2 = this.field_27.read(var1);
- if (var2 < 0) {
- this.field_27.close();
- break;
- }
-
- this.PushData(var1, var2);
- }
- } catch (IOException var3) {
- }
-
- this.field_27 = null;
- this.field_28 = true;
- }
- }
-